package edu.jamestang.yeb.controller;

import edu.jamestang.yeb.entity.JobLevel;
import edu.jamestang.yeb.service.JobLevelService;
import edu.jamestang.yeb.util.Resp;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

/**
 * @author JamesTang
 * @date 2021/12/14 23:59
 */
@RestController
@RequestMapping("/system/basic/joblevel")
public class JobLevelController {

    @Autowired
    private JobLevelService jobLevelService;

    @ApiOperation(value = "Get all jobLevel")
    @GetMapping("/")
    public List<JobLevel> getAllJobLevels(){

        return jobLevelService.list();
    }

    @ApiOperation(value = "addJobLevel")
    @PostMapping("/")
    public Resp addJobLevel(@RequestBody JobLevel jobLevel){

        jobLevel.setCreateDate(LocalDateTime.now());
        if(jobLevelService.save(jobLevel)){
            return Resp.success("Add complete");
        }
        return Resp.error("Add error");
    }

    @ApiOperation(value = "updateJobLevel")
    @PutMapping("/")
    public Resp updateJobLevel(@RequestBody JobLevel jobLevel){

        jobLevel.setCreateDate(LocalDateTime.now());
        if(jobLevelService.updateById(jobLevel)){
            return Resp.success("Update success");
        }
        return Resp.error("Update error");
    }

    @ApiOperation(value = "Delete JobLevel")
    @DeleteMapping("/{id}")
    public Resp deleteJobLevel(@PathVariable Integer id){

        if(jobLevelService.removeById(id)){
            return Resp.success("Delete success");
        }
        return Resp.error("Delete error");
    }

    @ApiOperation(value = "Batch Delete")
    @DeleteMapping("/")
    public Resp deleteJobLevelsByIds(Integer[] ids){
        if(jobLevelService.removeByIds(Arrays.asList(ids))){
            return Resp.success("Delete success");
        }
        return Resp.error("Delete error");
    }
}
